// $ANTLR 3.1.2 E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g 2013-05-14 21:10:36

// The variable 'variable' is assigned but its value is never used.
#pragma warning disable 219
// Unreachable code detected.
#pragma warning disable 162


using System.Collections.Generic;
using Antlr.Runtime;
using Stack = System.Collections.Generic.Stack<object>;
using List = System.Collections.IList;
using ArrayList = System.Collections.Generic.List<object>;

namespace ActorModel.Infrastructure.Configuration.Ivashenko.Grammar
{
public partial class IvashenkoConfigLexer : Lexer
{
	public const int EOF=-1;
	public const int ASSIGN=4;
	public const int COLON=5;
	public const int COMMENT=6;
	public const int CONNECTORS_PER_NODE_COUNT=7;
	public const int DEFAULT_STATE=8;
	public const int INT=9;
	public const int LEFT_BRACKET=10;
	public const int NODES_COUNT=11;
	public const int RIGHT_BRACKET=12;
	public const int SEMI=13;
	public const int STRING=14;
	public const int WS=15;

    // delegates
    // delegators

	public IvashenkoConfigLexer() {}
	public IvashenkoConfigLexer( ICharStream input )
		: this( input, new RecognizerSharedState() )
	{
	}
	public IvashenkoConfigLexer( ICharStream input, RecognizerSharedState state )
		: base( input, state )
	{

	}
	public override string GrammarFileName { get { return "E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g"; } }

	// $ANTLR start "NODES_COUNT"
	private void mNODES_COUNT()
	{
		try
		{
			int _type = NODES_COUNT;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:103:4: ( 'nodes_count' )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:103:4: 'nodes_count'
			{
			Match("nodes_count"); 


			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "NODES_COUNT"

	// $ANTLR start "CONNECTORS_PER_NODE_COUNT"
	private void mCONNECTORS_PER_NODE_COUNT()
	{
		try
		{
			int _type = CONNECTORS_PER_NODE_COUNT;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:106:4: ( 'connectors_per_node_count' )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:106:4: 'connectors_per_node_count'
			{
			Match("connectors_per_node_count"); 


			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "CONNECTORS_PER_NODE_COUNT"

	// $ANTLR start "DEFAULT_STATE"
	private void mDEFAULT_STATE()
	{
		try
		{
			int _type = DEFAULT_STATE;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:109:4: ( 'default_state' )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:109:4: 'default_state'
			{
			Match("default_state"); 


			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "DEFAULT_STATE"

	// $ANTLR start "ASSIGN"
	private void mASSIGN()
	{
		try
		{
			int _type = ASSIGN;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:112:4: ( '=' )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:112:4: '='
			{
			Match('='); 

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "ASSIGN"

	// $ANTLR start "SEMI"
	private void mSEMI()
	{
		try
		{
			int _type = SEMI;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:115:7: ( ';' )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:115:7: ';'
			{
			Match(';'); 

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "SEMI"

	// $ANTLR start "LEFT_BRACKET"
	private void mLEFT_BRACKET()
	{
		try
		{
			int _type = LEFT_BRACKET;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:118:4: ( '[' )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:118:4: '['
			{
			Match('['); 

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "LEFT_BRACKET"

	// $ANTLR start "RIGHT_BRACKET"
	private void mRIGHT_BRACKET()
	{
		try
		{
			int _type = RIGHT_BRACKET;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:121:4: ( ']' )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:121:4: ']'
			{
			Match(']'); 

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "RIGHT_BRACKET"

	// $ANTLR start "COLON"
	private void mCOLON()
	{
		try
		{
			int _type = COLON;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:124:4: ( ':' )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:124:4: ':'
			{
			Match(':'); 

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "COLON"

	// $ANTLR start "INT"
	private void mINT()
	{
		try
		{
			int _type = INT;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:127:7: ( ( '0' .. '9' )+ )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:127:7: ( '0' .. '9' )+
			{
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:127:7: ( '0' .. '9' )+
			int cnt1=0;
			for ( ; ; )
			{
				int alt1=2;
				int LA1_0 = input.LA(1);

				if ( ((LA1_0>='0' && LA1_0<='9')) )
				{
					alt1=1;
				}


				switch ( alt1 )
				{
				case 1:
					// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:
					{
					input.Consume();


					}
					break;

				default:
					if ( cnt1 >= 1 )
						goto loop1;

					EarlyExitException eee1 = new EarlyExitException( 1, input );
					throw eee1;
				}
				cnt1++;
			}
			loop1:
				;



			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "INT"

	// $ANTLR start "STRING"
	private void mSTRING()
	{
		try
		{
			int _type = STRING;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:130:7: ( '\"' ( '0' | '1' )* '\"' )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:130:7: '\"' ( '0' | '1' )* '\"'
			{
			Match('\"'); 
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:130:11: ( '0' | '1' )*
			for ( ; ; )
			{
				int alt2=2;
				int LA2_0 = input.LA(1);

				if ( ((LA2_0>='0' && LA2_0<='1')) )
				{
					alt2=1;
				}


				switch ( alt2 )
				{
				case 1:
					// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:
					{
					input.Consume();


					}
					break;

				default:
					goto loop2;
				}
			}

			loop2:
				;


			Match('\"'); 

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "STRING"

	// $ANTLR start "WS"
	private void mWS()
	{
		try
		{
			int _type = WS;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:133:7: ( ( ' ' | '\\t' | '\\r' | '\\n' ) )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:133:7: ( ' ' | '\\t' | '\\r' | '\\n' )
			{
			if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' )
			{
				input.Consume();

			}
			else
			{
				MismatchedSetException mse = new MismatchedSetException(null,input);
				Recover(mse);
				throw mse;}

			_channel = Hidden;

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "WS"

	// $ANTLR start "COMMENT"
	private void mCOMMENT()
	{
		try
		{
			int _type = COMMENT;
			int _channel = DefaultTokenChannel;
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:136:9: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:136:9: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
			{
			Match("//"); 

			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:136:14: (~ ( '\\n' | '\\r' ) )*
			for ( ; ; )
			{
				int alt3=2;
				int LA3_0 = input.LA(1);

				if ( ((LA3_0>='\u0000' && LA3_0<='\t')||(LA3_0>='\u000B' && LA3_0<='\f')||(LA3_0>='\u000E' && LA3_0<='\uFFFF')) )
				{
					alt3=1;
				}


				switch ( alt3 )
				{
				case 1:
					// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:
					{
					input.Consume();


					}
					break;

				default:
					goto loop3;
				}
			}

			loop3:
				;


			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:136:28: ( '\\r' )?
			int alt4=2;
			int LA4_0 = input.LA(1);

			if ( (LA4_0=='\r') )
			{
				alt4=1;
			}
			switch ( alt4 )
			{
			case 1:
				// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:136:0: '\\r'
				{
				Match('\r'); 

				}
				break;

			}

			Match('\n'); 
			_channel=Hidden;

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally
		{
		}
	}
	// $ANTLR end "COMMENT"

	public override void mTokens()
	{
		// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:10: ( NODES_COUNT | CONNECTORS_PER_NODE_COUNT | DEFAULT_STATE | ASSIGN | SEMI | LEFT_BRACKET | RIGHT_BRACKET | COLON | INT | STRING | WS | COMMENT )
		int alt5=12;
		switch ( input.LA(1) )
		{
		case 'n':
			{
			alt5=1;
			}
			break;
		case 'c':
			{
			alt5=2;
			}
			break;
		case 'd':
			{
			alt5=3;
			}
			break;
		case '=':
			{
			alt5=4;
			}
			break;
		case ';':
			{
			alt5=5;
			}
			break;
		case '[':
			{
			alt5=6;
			}
			break;
		case ']':
			{
			alt5=7;
			}
			break;
		case ':':
			{
			alt5=8;
			}
			break;
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9':
			{
			alt5=9;
			}
			break;
		case '\"':
			{
			alt5=10;
			}
			break;
		case '\t':
		case '\n':
		case '\r':
		case ' ':
			{
			alt5=11;
			}
			break;
		case '/':
			{
			alt5=12;
			}
			break;
		default:
			{
				NoViableAltException nvae = new NoViableAltException("", 5, 0, input);

				throw nvae;
			}
		}

		switch ( alt5 )
		{
		case 1:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:10: NODES_COUNT
			{
			mNODES_COUNT(); 

			}
			break;
		case 2:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:22: CONNECTORS_PER_NODE_COUNT
			{
			mCONNECTORS_PER_NODE_COUNT(); 

			}
			break;
		case 3:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:48: DEFAULT_STATE
			{
			mDEFAULT_STATE(); 

			}
			break;
		case 4:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:62: ASSIGN
			{
			mASSIGN(); 

			}
			break;
		case 5:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:69: SEMI
			{
			mSEMI(); 

			}
			break;
		case 6:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:74: LEFT_BRACKET
			{
			mLEFT_BRACKET(); 

			}
			break;
		case 7:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:87: RIGHT_BRACKET
			{
			mRIGHT_BRACKET(); 

			}
			break;
		case 8:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:101: COLON
			{
			mCOLON(); 

			}
			break;
		case 9:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:107: INT
			{
			mINT(); 

			}
			break;
		case 10:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:111: STRING
			{
			mSTRING(); 

			}
			break;
		case 11:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:118: WS
			{
			mWS(); 

			}
			break;
		case 12:
			// E:\\Documents\\Projects\\CellularAutomaton\\Extensions\\IvashenkoConfigLoader\\Grammar\\IvashenkoConfig.g:1:121: COMMENT
			{
			mCOMMENT(); 

			}
			break;

		}

	}


	#region DFA

	protected override void InitDFAs()
	{
		base.InitDFAs();
	}

 
	#endregion

}

} // namespace ActorModel.Infrastructure.Configuration.Ivashenko.Grammar
